<template>
    <span>{{ label }}</span>
</template>

<script setup lang="ts">
import {computed} from 'vue';
import formatter, {FormatterKey} from "@/lang/commons/formatter.js";

/**
 * 数据字典
 *
 * 简单的文本转换，value 转换成 label
 *
 * 推荐直接使用 TextUtils 进行格式化，避免无意义的性能浪费
 */
interface Props {
    // 值字段名
    value?: any;
    // 格式化名称
    type: FormatterKey;
    // 格式化名称
    def?: string;
}

const props = withDefaults(defineProps<Props>(), {def: ''});

const label = computed(() => {
    return formatter.format(props.type, props.value);
});

</script>